/**
 * Package for EnterpriseAssets area shared resource definition classes.
 */
jsx3.lang.Package.definePackage("tibco.admin.enterpriseAssets.shdResDefs", function() {
});

/**
* Interface to be implemented by all plugin components wishing to handle a new type of shared resource definition
*/
jsx3.lang.Class.defineInterface(
   "tibco.admin.enterpriseAssets.shdResDefs.ShdResDefsInterface",
    tibco.admin.plugin.PluginInterface,
    function(plugin) {

        /**
        * Abstract method to be implemented by all implementing classes.
        * Returns the type of shared resource this plugin handles, as provided by the server-side component
        *
        * @return {String} the type of shared resource definition handled.
        */
        plugin.prototype.getType = jsx3.lang.Method.newAbstract();

        /**
        * Abstract method to be implemented by all implementing classes.  Should return the text that
        * will appear in the Add selector.
        *
        * @return {String} the text to appear in this plugin Add selection.
        */
        plugin.prototype.getAddText = jsx3.lang.Method.newAbstract();

        /**
        * Abstract function to be implemented by the plugin component.  Should return the path to the image icon
        * for this shared resource type (used in the Add selector's dropdown menu).
        *
        * @return {String} the path to this shared resource type's image icon
        */
        plugin.prototype.getImagePath = jsx3.lang.Method.newAbstract();

        /**
        * Abstract method to be implemented by all implementing classes.
        * Function to be called by container when Add is selected for this plugin type
        *
        * @return {String} the text to appear in this plugin Add selection.
        */
        plugin.prototype.addSharedResourceDefinition = jsx3.lang.Method.newAbstract();

   }
 );